1. Field of the Invention
This invention relates to a method, apparatus and related program product for providing nondeterministic data and in particular to techniques for providing nondeterministic data executed by non synchronized processor elements of a fault resilient system using an assignment logic and at least one entropy source.
2. Description of Background
In many applications, especially safety relevant and fault resilient systems, a process or a program is executed by one or more processors or their elements to increase the safety and reliability of the overall system. For example, in a fly-by-wire system of an aircraft it is important that a calculated result for a control signal does not contain any errors. In such systems the results achieved can be compared with each other in an effort to reduce errors that can affect system reliability. If the results obtained are identical, it can then be assumed, with some degree of high probability, that the calculated result is correct and does not contain errors.
In such instances, several processor elements of the same type can undergo an externally enforced synchronization via a lockstep operation. To achieve this, the external operation conditions of all processor elements have to be identical (e.g. the processor elements get the same input data and receive the exactly same clock signal.) However, this kind of enforced synchronization is hard to implement because a circuit design for such a system is difficult and has many restrictions.
Accordingly, it is desired to make a deterministic embedded system fault resilient without explicit cross checking or externally enforced synchronization of multiple backend or processor elements by a lockstep operation. While prior art provides some insight into implementing state oriented channels which stores multiple responses and detects mismatches to avoid an externally enforced synchronization, it does not provide for processes executed by different non-synchronized processor elements with nondeterministic data. For example, cryptographic processors executed by non-synchronized processor elements may have to be supplied with nondeterministic data. In the previous example, in a fly by wire system of an aircraft several non-synchronized processor elements may send a request to a sensor to get sensor data, wherein these processor element requests are unsynchronized and will get time-dependent, nondeterministic results from the sensor. Another example that can be used is one that involves generating nondeterministic data for an entropy source that is a True Random Number Generator (TRNG).
Consequently, it is desirable to introduce a solution that can provide improved techniques to provide nondeterministic data that is executed by different non-synchronized process elements while minimizing any errors generated by the process.